package com.atguigu.juc.juc20210301;

import java.util.ArrayList;

/**
 * @auther zzyy
 * @create 2020-04-07 14:46
 *
 *
 *  *  synchronized是实现同步的基础：Java中的每一个对象都可以作为锁。
 *
 *  *  具体表现为以下3种形式。
 *     作用于实例方法，当前实例加锁，进入同步代码前要获得当前实例的锁；
 *     作用于静态方法，当前类加锁，进去同步代码前要获得当前类对象的锁；
 *     作用于代码块，对括号里配置的对象加锁。
 */
public class SyncDemo
{

    public synchronized void m1()
    {
        new ArrayList<>();
    }

    public static void main(String[] args)
    {
        Object object = new Object();

        System.out.println("1111");

        synchronized (object)
        { // lock.lock()
            System.out.println("222");
            System.out.println("333");
        }// lock.unlock()

        System.out.println("444");

    }
}
